package fr.babos.navigation.bundle 
{
	import flash.display.DisplayObjectContainer;
	import fr.babos.core.bundle.Bundle;
	import fr.babos.navigation.bootstrap.INavigationBootstrap;
	import fr.babos.navigation.bootstrap.NavigationBootstrap;
	
	/**
	 * @author ZoulouX
	 */
	public class NavigationBundle extends Bundle implements INavigationBundle 
	{
		/**
		 * Le constructeur
		 * @param	pParentContainer : Le container parent dans lequel ajouter automatiquement le viewContainer (optionnel)
		 * @param	pAutoInit : Initialiser automatiquement lorsque le viewContainer est ajouté
		 * @param	pAutoDispose : Disposer automatiquement lorsque le viewContainer est supprimé
		 */
		public function NavigationBundle (pParentContainer:DisplayObjectContainer = null, pAutoInit:Boolean = true, pAutoDispose:Boolean = true)
		{
			super(pParentContainer, pAutoInit, pAutoDispose);
		}
		
		/**
		 * Initialiser un bootstrap de navigation
		 */
		override protected function initBootstrap ():void
		{
			// Créer le bootstrap concrêt par défaut
			_bootstrap = new NavigationBootstrap(_viewContainer as DisplayObjectContainer);
		}
		
		/**
		 * Récupérer le bootstrap de navigation correctement typé
		 */
		protected function getNavigationBootstrap ():INavigationBootstrap
		{
			return _bootstrap as INavigationBootstrap;
		}
	}
}